home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Graphics / PerfectPaint / rexx / Anim / Operators / Displace next >
Encoding:
Text File  |  2001-04-05  |  1.2 KB  |  85 lines

  1. /* Effect Operators Mosaic
  2. 000
  3. */
  4.  
  5.     call addlib("rexxmathlib.library", 5, -30, 0)
  6.  
  7.     options results
  8.  
  9.     parse ARG Port Opt1 Opt2 Opt3 s0 t0 s1 t1 b
  10.     
  11.     ADDRESS value Port
  12.  
  13.     pp_GetWidth
  14.     w=result
  15.     pp_GetHeight
  16.     h=result
  17.     pp_GetDepth
  18.     D=result
  19.  
  20.         pp_ComposeReqOff        
  21.         pp_GetCurrentBrush
  22.         CB=result
  23.         pp_FindEmptyBrush
  24.         Brush=result
  25.         pp_SetBrush Brush
  26.         pp_GotoFrame s1
  27.         pp_PicttoSpare
  28.         pp_GotoFrame s0            
  29.         pp_Pickbrush 0 0 W H
  30.  
  31.         step=(s1-s0)
  32.  
  33.         pp_Compose 0 100 0    
  34.         pp_EffectOn
  35.         do i=s0 to s1
  36.             IF t1=1 then DO
  37.                 pp_GotoFrame (s1+i-s0)
  38.                 pp_PicttoSpare
  39.             END
  40.             pp_GotoFrame i
  41.             IF t0=0 then DO
  42.                 pp_EffectOff
  43.                 pp_Plot W/2 H/2
  44.                 pp_EffectOn
  45.             END
  46.             pp_Displace (i-s0)
  47.             pp_boxf 0 0 W H                
  48.         END
  49.  
  50.         Step_f=100/Step
  51.  
  52.         pp_GotoFrame s0
  53.         pp_SpareOnOff
  54.         pp_PickBrush 0 0 W H
  55.         pp_SpareOnOff
  56.  
  57.         do i=s0 to s1
  58.             IF t1=1 then DO
  59.                 pp_GotoFrame (s1+(s0-i))
  60.                 pp_pickbrush 0 0 W H
  61.             END
  62.             pp_GotoFrame i
  63.             pp_SpareOnOff
  64.             pp_EffectOff
  65.             pp_Plot W/2 H/2
  66.             pp_EffectOn
  67.             f=Step_f*(i-s0)
  68.             pp_Compose 0 100 0
  69.             pp_Displace s1-(i-s0)
  70.             pp_boxf 0 0 W H
  71.             pp_SpareOnOff
  72.             pp_Spare
  73.             pp_Compose 0 f 0
  74.             pp_boxf 0 0 W H            
  75.         END            
  76.  
  77.         pp_Gotoframe s0
  78.         pp_FreeBrush
  79.         pp_SetBrush CB
  80.  
  81.         pp_EffectOff
  82.         pp_ComposeReqOn    
  83.  
  84.     EXIT
  85.